Web applications (e.g., applications that are primarily accessed through a web browser and receive data from a remote server) are becoming increasingly popular. Web applications are used for a wide variety of purposes including email, calendar, banking, word processing, and image editing applications. However, the widespread use of web applications has created a number of problems. For example there is often a delay between when a request is sent over a network and when a response is received, also known as network latency. This network latency reduces the responsiveness of web applications, because the web application must wait for data from a remote server before responding to requests to perform operations indicated by a user. This additional waiting time can be frustrating for the user. Additionally, when a network connection is not available, the web application is unable to receive data from the remote server and thus the functionality of the web application is limited. Similarly the inability to use an application due to a lack of a network connection can be frustrating for a user.